1. Field of the Invention
The present invention generally relates to the field of artificial intelligence and, more particularly, to a fact-based (semantic network) expert system knowledge base manager and inference engine. As used herein, artificial intelligence means that part of computer science concerned with designing intelligent computer systems. Such systems are finding increasing application in problem-solving, logical reasoning, language understanding, programming, learning, expert systems, robotics and vision.
2. Description of the Prior Art
Expert systems, as a branch of artificial intelligence, exhibit characteristics normally associated with human behavior and are sometimes referred to as "knowledge-based" systems which use certain standardized processes and a database to provide a user interactive environment in the form of a "consultation dialog", just as the user would interact with a human expert. Such systems have been used with considerable success in the fields of chemical and geological data analysis, structural engineering and medical diagnosis.
Rules and their derivatives work best where the situation is clear and determinate, where answers to questions can be straight forward and unambiguous, where the expert is crisp about certainties, and where there are no obvious unknowns. In such an environment, the rules allow precise access to the knowledge database, providing an answer or advice with an apparently high confidence level. It is this type of environment that current expert system design assumes as a premise. Currently, expert systems rely on a series of rules which are analyzed essentially in a sequential, cascading fashion.
Consider, for example, expert systems in current use for medical diagnosis. Such systems work very poorly in providing medical diagnoses where information is not always known, the expert knowledge is not always clearly understood, and data (i.e., medical test results) are sometimes ambiguous. Nevertheless, the situation presented in the medical diagnosis application is really determinate; that is, the answers to questions posed by the system are straight forward and the information requested is completely known, at least in the ideal world. The expert system, of course, assumes an ideal world because it knows no better. That is to say that current systems do not have the same sense as humans about knowing when they might be wrong.
In current expert systems, the problem is really one of our own inability to provide all the pieces that would make a given problem solution an obviously clear, determinate and straight forward solution. A rule-based approach is reasonably appropriate to a medical diagnosis application, for example, because in this case a selection or tree search approach is ideal.
Consider in contrast to the prior applications of expert systems the problem of selecting a career path. This is a problem with numerous alternatives, variable over time and among individuals, using facts, feelings, possibilities and so forth, all mashed together into a set of cloudy answers, many of which can be simultaneously valid and conflicting. We do not know what makes these answers valid, nor do we really understand how the human mind itself manages to massage this information, or lack of it, to provide useful guidance. This is an indeterminate problem. All the factors can never be known, and it is impossible to map the interaction of these factors.
A piece of information or fact has no relevance by itself. Only when it relates to another piece of information or to an emotion does the human mind make sense of that information. Somehow, our brains are able to handle these problems unconsciously. In an effort to mimic the reasoning of the human brain, various mathematical models have been proposed to simulate imperfectly, but sometimes quite effectively, the reasoning process. However, we human beings handle complexities like those found in the career path problem very poorly on an objective, conscious level. We often fool ourselves by throwing numbers and formulas at these problems, taking liberties with default values, averaging and grouping information in order to fit the one solution methodology we have learned.
What is needed for the indeterminate class of problem is a mechanism that:
1. Allows us to partition its complexities into very small, logically cohesive chunks.
2. Allows us to deal with these chunks independently.
3. Allows us to validly relate these chunks, that is, specify their relationships and influences on one another.
4. Mimics, as best we can know and define, the process by which the human brain understands these interrelationships.
5. Handles, reasonably and validy, information which is of dubious certainty.
6. Handles the removal, modification, or addition of information without ever producing confused or outrageous results; provided, of course, that the information/knowledge base is correct.
7. Provides we human beings with an indication of how confident it is in the results it produces.